package model.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import model.Aluno;

public class AlunoDAO {
	private DAOHelper daohelper;
	public AlunoDAO(){
		daohelper = new DAOHelper();
	}
	public void inserir(Aluno aluno) throws SQLException{
		daohelper.beginTransaction();
		long id =  daohelper.executePreparedUpdateAndReturnGeneratedKeys(daohelper.getConnectionFromContext(), "insert into aluno(matricula, nome, anonasc, mesnas, dianasc) values (?, ?, ?, ?, ?)", 
				aluno.getMatricula(),
				aluno.getNome(),
				aluno.getAnonasc(),
				aluno.getMesnasc(),
				aluno.getDianasc()
				);
		aluno.setId(id);
		daohelper.endTransaction();
	}
	public List<Aluno> listarTodosAlunos() throws SQLException{
		final List<Aluno> alunos = new ArrayList<Aluno>();
		return daohelper.executePreparedQuery("select * from aluno", new QueryMapper<Aluno>(){
			@Override
			public List<Aluno> mapping(ResultSet rset) throws SQLException{
				while(rset.next()){
					Aluno aluno = new Aluno();
					aluno.setId(rset.getInt("id"));
					aluno.setMatricula(rset.getLong("matricula"));
					aluno.setNome(rset.getString("nome"));
					aluno.setAnonasc(rset.getString("anonasc"));
					aluno.setMesnasc(rset.getString("mesnasc"));
					aluno.setDianasc(rset.getString("dianasc"));
					alunos.add(aluno);
				}
				return alunos;
			}
			
		});
		
	}
}
